/**
 * 数组根据日期和areaId转为列
 * @param arr
 */
export function rowToColumns(arr: any[]) {
  // 使用一个对象来存储日期和对应的分区数据
  const resultMap: Record<string, Record<string, any>> = {};

  arr.forEach((item) => {
    const { date, areaName, chargedEnergy, dischargedEnergy, dod, stationId, maxSoc, minSoc } =
      item;

    // 如果 date 不存在，初始化
    if (!resultMap[date]) {
      resultMap[date] = {
        date: date,
        stationId,
      };
    }

    // 使用 areaName 作为前缀，构造新的字段名
    const areaPrefix = areaName;
    resultMap[date][`${areaPrefix}_chargedEnergy`] = chargedEnergy;
    resultMap[date][`${areaPrefix}_dischargedEnergy`] = dischargedEnergy;
    resultMap[date][`${areaPrefix}_dod`] = dod;
    resultMap[date][`${areaPrefix}_maxSoc`] = maxSoc;
    resultMap[date][`${areaPrefix}_minSoc`] = minSoc;
  });

  // 将对象转换为数组
  return Object.values(resultMap);
}
